This chapter describes a set of atomic work products that are created when developing an architecture. An artifact
represents an individual model of a system or solution, which could potentially be re-used in a variety of contexts. An
artifact is distinct from a deliverable, which is a contracted output from a project. In general cases, deliverables
will contain artifacts and each artifact may exist in many deliverables.
This chapter discusses the concepts surrounding architecture artifacts and then goes on to discuss the artifacts that
are created at each phase within the Architecture Development Method (ADM).
Basic Concepts
Architectural artifacts are created in order to describe a system, solution, or state of the enterprise. The concepts
discussed in this section have been adapted from more formal definitions contained in ISO/IEC 42010:2007 and
illustrated in Basic
Architectural Concepts .
-
Note:
-
The notation used is from the Unified Modeling Language (UML) specification.
Figure: Basic Architectural Concepts
A "system" is a collection of components organized to accomplish a specific function or set of functions.
The "architecture" of a system is the system's fundamental organization, embodied in its components, their
relationships to each other and to the environment, and the principles guiding its design and evolution.
An "architecture description" is a collection of artifacts that document an architecture. In TOGAF, architecture views
are the key artifacts in an architecture description.
"Stakeholders" are people who have key roles in, or concerns about, the system; for example, as users, developers, or
managers. Different stakeholders with different roles in the system will have different concerns. Stakeholders can be
individuals, teams, or organizations (or classes thereof).
"Concerns" are the key interests that are crucially important to the stakeholders in the system, and determine the
acceptability of the system. Concerns may pertain to any aspect of the system's functioning, development, or operation,
including considerations such as performance, reliability, security, distribution, and evolvability.
A "view" is a representation of a whole system from the perspective of a related set of concerns.
In capturing or representing the design of a system architecture, the architect will typically create one or more
architecture models, possibly using different tools. A view will comprise selected parts of one or more models, chosen
so as to demonstrate to a particular stakeholder or group of stakeholders that their concerns are being adequately
addressed in the design of the system architecture.
A "viewpoint" defines the perspective from which a view is taken. More specifically, a viewpoint defines: how to
construct and use a view (by means of an appropriate schema or template); the information that should appear in the
view; the modeling techniques for expressing and analyzing the information; and a rationale for these choices (e.g., by
describing the purpose and intended audience of the view).
-
A view is what you see. A viewpoint is where you are looking from - the vantage point or perspective that
determines what you see.
-
Viewpoints are generic, and can be stored in libraries for re-use. A view is always specific to the architecture
for which it is created.
-
Every view has an associated viewpoint that describes it, at least implicitly. ISO/IEC 42010:2007 encourages
architects to define viewpoints explicitly. Making this distinction between the content and schema of a view may
seem at first to be an unnecessary overhead, but it provides a mechanism for re-using viewpoints across different
architectures.
In summary, then, architecture views are representations of the overall architecture in terms meaningful to
stakeholders. They enable the architecture to be communicated to and understood by the stakeholders, so they can verify
that the system will address their concerns.
-
Note:
-
The terms "concern" and "requirement" are not synonymous. A concern is an area of interest. So, system reliability
might be a concern/area of interest for some stakeholders. The reason why architects should identify concerns and
associate them with viewpoints, is to ensure that those concerns will be addressed in some fashion by the models of
the architecture. For example, if the only viewpoint selected by an architect is a structural viewpoint, then
reliability concerns are almost certainly not being addressed, since they cannot be represented in a structural
model. Within that concern, stakeholders may have many distinct requirements: different classes of users may have
very different reliability requirements for different capabilities of the system.
Concerns are the root of the process of decomposition into requirements. Concerns are represented in the
architecture by these requirements. Requirements should be SMART (e.g., specific metrics).
Simple Example of a Viewpoint and View
For many architectures, a useful viewpoint is that of business domains, which can be illustrated by an example from The
Open Group itself.
The viewpoint is specified as follows:
Viewpoint Element
|
Description
|
Stakeholders
|
Management Board, Chief Executive Officer
|
Concerns
|
Show the top-level relationships between geographical sites and business functions.
|
Modeling technique
|
Nested boxes diagram.
Outer boxes = locations; inner boxes = business functions.
Semantics of nesting = functions performed in the locations.
|
The corresponding view of The Open Group (in 2008) is shown in Example View -
The Open Group Business Domains in 2008 .
Figure: Example View - The Open Group Business Domains in 2008
Developing Views in the ADM
General Guidelines
The choice of which particular architecture views to develop is one of the key decisions that the architect has to
make.
The architect has a responsibility for ensuring the completeness (fitness-for-purpose) of the architecture, in terms of
adequately addressing all the pertinent concerns of its stakeholders; and the integrity of the architecture, in terms
of connecting all the various views to each other, satisfactorily reconciling the conflicting concerns of different
stakeholders, and showing the trade-offs made in so doing (as between security and performance, for example).
The choice has to be constrained by considerations of practicality, and by the principle of fitness-for-purpose (i.e.,
the architecture should be developed only to the point at which it is fit-for-purpose, and not reiterated ad
infinitum as an academic exercise).
As explained in Part II: Architecture Development Method (ADM), the development of architecture
views is an iterative process. The typical progression is from business to technology, using a technique such as
business scenarios (see Part
III, Business Scenarios) to properly identify all pertinent concerns; and from high-level overview to lower-level
detail, continually referring back to the concerns and requirements of the stakeholders throughout the process.
Moreover, each of these progressions has to be made for two distinct environments: the existing environment (referred
to as the baseline in the ADM) and the target environment. The architect must develop pertinent architecture views of
both the Baseline Architecture and the Target Architecture. This provides the context for the gap analysis at the end
of Phases B, C, and D of the ADM, which establishes the elements of the Baseline Architecture to be carried forward and
the elements to be added, removed, or replaced.
This whole process is explained in Part III, Gap
Analysis .
View Creation Process
As mentioned above, at the present time TOGAF encourages but does not mandate the use of ISO/IEC 42010:2007. The
following description therefore covers both the situation where ISO/IEC 42010:2007 has been adopted and where it has
not.
ISO/IEC 42010:2007 itself does not require any specific process for developing viewpoints or creating views from them.
Where ISO/IEC 42010:2007 has been adopted and become well-established practice within an organization, it will often be
possible to create the required views for a particular architecture by following these steps:
-
Refer to an existing library of viewpoints
-
Select the appropriate viewpoints (based on the stakeholders and concerns that need to be covered by views)
-
Generate views of the system by using the selected viewpoints as templates
This approach can be expected to bring the following benefits:
-
Less work for the architects (because the viewpoints have already been defined and therefore the views can be
created faster)
-
Better comprehensibility for stakeholders (because the viewpoints are already familiar)
-
Greater confidence in the validity of the views (because their viewpoints have a known track record)
However, situations can always arise in which a view is needed for which no appropriate viewpoint has been predefined.
This is also the situation, of course, when an organization has not yet incorporated ISO/IEC 42010:2007 into its
architecture practice and established a library of viewpoints.
In each case, the architect may choose to develop a new viewpoint that will cover the outstanding need, and then
generate a view from it. (This is ISO/IEC 42010:2007 recommended practice.) Alternatively, a more pragmatic approach
can be equally successful: the architect can create an ad hoc view for a specific system and later consider
whether a generalized form of the implicit viewpoint should be defined explicitly and saved in a library, so that it
can be re-used. (This is one way of establishing a library of viewpoints initially.)
Whatever the context, the architect should be aware that every view has a viewpoint, at least implicitly, and that
defining the viewpoint in a systematic way (as recommended by ISO/IEC 42010:2007) will help in assessing its
effectiveness; i.e., does the viewpoint cover the relevant stakeholder concerns?.
Views, Tools, and Languages
The need for architecture views, and the process of developing them following the ADM, are explained above. This
section describes the relationships between architecture views, the tools used to develop and analyze them, and a
standard language enabling interoperability between the tools.
Overview
In order to achieve the goals of completeness and integrity in an architecture, architecture views are usually
developed, visualized, communicated, and managed using a tool.
In the current state of the market, different tools normally have to be used to develop and analyze different views of
the architecture. It is highly desirable that an architecture description be encoded in a standard language, to enable
a standard approach to the description of architecture semantics and their re-use among different tools.
A viewpoint is also normally developed, visualized, communicated, and managed using a tool, and it is also highly
desirable that standard viewpoints (i.e., templates or schemas) be developed, so that different tools that deal in the
same views can interoperate, the fundamental elements of an architecture can be re-used, and the architecture
description can be shared among tools.
Issues relating to the evaluation of tools for architecture work are discussed in detail in Part V, Tools for Architecture Development .
Views and Viewpoints
Example of Views and Viewpoints
To illustrate the concepts of views and viewpoints, consider the example of a very simple airport system with two
different stakeholders: the pilot and the air traffic controller.
One view can be developed from the viewpoint of the pilot, which addresses the pilot's concerns. Equally, another view
can be developed from the viewpoint of the air traffic controller. Neither view completely describes the system in its
entirety, because the viewpoint of each stakeholder constrains (and reduces) how each sees the overall system.
The viewpoint of the pilot comprises some concerns that are not relevant to the controller, such as passengers and
fuel, while the viewpoint of the controller comprises some concerns not relevant to the pilot, such as other planes.
There are also elements shared between the two viewpoints, such as the communication model between the pilot and the
controller, and the vital information about the plane itself.
A viewpoint is a model (or description) of the information contained in a view. In our example, one viewpoint is the
description of how the pilot sees the system, and the other viewpoint is how the controller sees the system.
Pilots describe the system from their perspective, using a model of their position and vector toward or away from the
runway. All pilots use this model, and the model has a specific language that is used to capture information and
populate the model.
Controllers describe the system differently, using a model of the airspace and the locations and vectors of aircraft
within the airspace. Again, all controllers use a common language derived from the common model in order to capture and
communicate information pertinent to their viewpoint.
Fortunately, when controllers talk with pilots, they use a common communication language. (In other words, the models
representing their individual viewpoints partially intersect.) Part of this common language is about location and
vectors of aircraft, and is essential to safety.
So in essence each viewpoint is an abstract model of how all the stakeholders of a particular type - all pilots, or all
controllers - view the airport system.
Tools exist to assist stakeholders, especially when they are interacting with complex models such as the model of an
airspace, or the model of air flight.
The interface to the human user of a tool is typically close to the model and language associated with the viewpoint.
The unique tools of the pilot are fuel, altitude, speed, and location indicators. The main tool of the controller is
radar. The common tool is a radio.
To summarize from the above example, we can see that a view can subset the system through the perspective of the
stakeholder, such as the pilot versus the controller. This subset can be described by an abstract model called a
viewpoint, such as an air flight versus an air space model. This description of the view is documented in a
partially specialized language, such as "pilot-speak" versus "controller-speak". Tools are used to assist the
stakeholders, and they interface with each other in terms of the language derived from the viewpoint ("pilot-speak"
versus' "controller-speak").
When stakeholders use common tools, such as the radio contact between pilot and controller, a common language is
essential.
Views and Viewpoints in Enterprise Architecture
Now let us map this example to the enterprise architecture. Consider two stakeholders in a new small computing system:
the users and the developers.
The users of the system have a viewpoint that reflects their concerns when interacting with the system, and the
developers of the system have a different viewpoint. Views that are developed to address either of the two viewpoints
are unlikely to exhaustively describe the whole system, because each perspective reduces how each sees the system.
The viewpoint of the user is comprised of all the ways in which the user interacts with the system, not seeing any
details such as applications or Database Management Systems (DBMS).
The viewpoint of the developer is one of productivity and tools, and doesn't include things such as actual live data
and connections with consumers.
However, there are things that are shared, such as descriptions of the processes that are enabled by the system and/or
communications protocols set up for users to communicate problems directly to development.
In this example, one viewpoint is the description of how the user sees the system, and the other viewpoint is how the
developer sees the system. Users describe the system from their perspective, using a model of availability, response
time, and access to information. All users of the system use this model, and the model has a specific language.
Developers describe the system differently than users, using a model of software connected to hardware distributed over
a network, etc. However, there are many types of developers (database, security, etc.) of the system, and they do not
have a common language derived from the model.
Need for a Common Language and Interoperable Tools for Architecture
Description
Tools exist for both users and developers. Tools such as online help are there specifically for users, and attempt to
use the language of the user. Many different tools exist for different types of developers, but they suffer from the
lack of a common language that is required to bring the system together. It is difficult, if not impossible, in the
current state of the tools market to have one tool interoperate with another tool.
Issues relating to the evaluation of tools for architecture work are discussed in detail in Part V, Tools for Architecture Development .
Conclusions
This section attempts to deal with views in a structured manner, but this is by no means a complete treatise on views.
In general, TOGAF embraces the concepts and definitions presented in ISO/IEC 42010:2007, specifically the concepts that
help guide the development of a view and make the view actionable. These concepts can be summarized as:
-
Selecting a key stakeholder
-
Understanding their concerns and generalizing/documenting those concerns
-
Understanding how to model and deal with those concerns
In the following sections, TOGAF presents some recommended viewpoints, some or all of which may be appropriate in a
particular architecture development. This is not intended as an exhaustive set of viewpoints, but simply as a starting
point. Those described may be supplemented by additional viewpoints as required. These TOGAF sections on viewpoints
should be considered as guides for the development and treatment of a view, not as a full definition of a viewpoint.
Taxonomy of Architecture Viewpoints
TOGAF defines a set of architecture viewpoints that may be adopted, enhanced, and combined to produce views that
describe an architecture. In order to aid in re-use and consistency, a number of atomic viewpoints are outlined below
that enable the development of individual views for many different purposes. In a typical enterprise, stakeholder
concerns will be identified in order to develop richer and more complex viewpoints that address specific stakeholder
groups.
Part III, Stakeholder Management provides an
outline of the major stakeholder groups that are typically encountered when developing enterprise architecture. The
likely concerns of each stakeholder group are also identified.
Viewpoints Associated with the Core Content Metamodel and
Extensions shows the viewpoints that are associated with the core content metamodel and each of the
content extensions.
Figure: Viewpoints Associated with the Core Content Metamodel and Extensions
The specific classes of viewpoint are as follows:
-
Catalogs are specific foundational viewpoints that represent lists of building blocks.
-
Matrices are specific foundational viewpoints that show the relationships between building blocks of
specific types.
-
Diagrams are graphical viewpoints that present building blocks in a rich and visual way, more suited to
stakeholder communication.
The TOGAF architecture domains are themselves viewpoints that can be used to group the foundational catalogs, matrices,
and diagrams:
-
The Business Architecture domain addresses the needs of users, planners, and business management.
-
The Data Architecture domain addresses the needs of database designers, database administrators, and system
engineers.
-
The Application Architecture domain addresses the needs of system and software engineers.
-
The Technology Architecture domain addresses the needs of acquirers, operators, administrators, and
managers.
When applying TOGAF within a particular enterprise or project, it may be necessary to take each one of these
stakeholder types (e.g., user, database administrator, acquirer, etc.) and create an explicit set of stakeholder
concerns. These concerns can then be used to refine and enhance the basic viewpoints provided by TOGAF.
It is expected that, when applying TOGAF to a specific architectural problem, a number of tailoring steps should take
place:
-
The viewpoints provided should be customized to create a set of architecture views that ensure all stakeholder
concerns are met. For example, selection of core and extension content identified within Business Architecture
allows for a lightweight or detailed view of Business Architecture.
-
New viewpoints and views should be created to address specific needs of the problem. For example, an Enterprise
Security view could be created that spans Business, Data, Application, and Technology Architecture to show security
from all aspects.
|